﻿#include "stdafx.h"

//***********************************
// Constructor - Destructor 
//***********************************
CVong::CVong()
{
	this->_vong = 1;
}


CVong::CVong(int x)
{
	this->_vong=x;
}


CVong::~CVong()
{

}


//***********************************
//Getter - Setter
//***********************************
int CVong::Vong()
{
	return this->_vong;
}


bool CVong::Win()
{
	return this->_win;
}


bool CVong::Win(bool flag)
{
	this->_win = flag;
	return true;
}



//***********************************
// Functions
//***********************************
bool CVong::Load()
{
	//Lưu giá trị các biến của đồ vật vào String Table của resource
	//Giả sử ta có ID của 1 resource như sau: abcde
	//Quy ước:
	//			+ a: chính là số thứ tự của vòng đang chơi
	//			+ bc: số thứ tự của đồ vật 
	//			+ de: số thứ tự thuộc tính của đồ vật, lần lượt như sau: mota,xsrc,ysrc,xdes,ydes,filename,flag
	//Ví dụ: IDS_STRING10105 có giá trị: vong1\\aogiap.png . Ý nghĩa như sau:
	//			+ Thuộc tính filename đồ vật thứ 1 của vòng 1 là: vong1\\aogiap.png

	UINT IDVong = 10000 * this->_vong;		//chỉ số của vòng. Ví dụ: vòng 1: 10000
	CString StrVong;						//lưu giá trị của chuỗi lấy từ bảng string table
	StrVong.LoadStringW(IDVong);			//hàm Format có tác dụng lấy ra giá trị chuỗi từ bảng string table có ID được lưu trong biến IDVong
	int sodovat=_tstoi(StrVong);			//hàm _tstoi có tác dụng convert CString into integer =>số đồ vật của vòng
	
	for(int i = 1; i < sodovat; i++)
	{
		UINT IDDoVat = IDVong + i * 100;	//ID của đồ vật. Ví dụ: đồ vật thứ 1 có ID là 1010x
		CString mota,StrTemp;
		StrTemp.LoadStringW (IDDoVat);
		mota=StrTemp	;//Thuộc tính mota của đồ vật thứ 1 có ID là: 10100
		StrTemp.LoadStringW(IDDoVat + 1);
		//Thuộc tính xsrc của đồ vật thứ 1 có ID là: 10101
		int xsrc = _tstoi(StrTemp);
		StrTemp.LoadStringW(IDDoVat + 2);	//tương tự....
		int ysrc = _tstoi(StrTemp);
		StrTemp.LoadStringW(IDDoVat + 3);
		int xdes = _tstoi(StrTemp);
		StrTemp.LoadStringW(IDDoVat + 4);
		int ydes = _tstoi(StrTemp);
		StrTemp.LoadStringW(IDDoVat + 5);
		CString filename = StrTemp;
		StrTemp.LoadStringW(IDDoVat + 6);
		int flag = _tstoi(StrTemp);

		//Thêm đồ vật đó vào 
		this->_dovat.Insert(new CDoVat(mota, xsrc, ysrc, xdes, ydes, filename, flag));
	}
	return true;
}


void CVong::Draw(HDC hDC)
{
	this->_dovat.Draw(hDC);
}


void CVong::DrawText(CDC* pDC, int sott)
{
	//sott: số thứ tự của đồ vật cần xuất text
	COLORREF txtColor;
	COLORREF bgColor;
	bool flag = this->_dovat.GetDoVat(sott)->FLAG();
	if (flag)
	{
		txtColor = RGB(101,73,56);
		bgColor = RGB(222,222,197);
	}
	else
	{
		txtColor = RGB(0,0,0);
		bgColor = RGB(222,222,197);
	}

	this->_dovat.DrawText(pDC, sott, txtColor, bgColor);
}


int CVong::Check(CPoint point)
{
	return this->_dovat.Check(point);
}

int CVong::listDVnum()
{
	return this->_dovat.N();
}

void CVong::MotaVisible(int a,bool b)
{
	this->_dovat.GetDoVat(a)->Drawable(b);
}

//bool CVong::Read()
//{
//	try
//	{	
//		CFile file;
//		CFileException ex;
//		LPCTSTR filepath;
//
//		if(this->_vong == 1)
//			filepath = _T("data\\vong1.txt");
//		else if (this->_vong == 2)
//			filepath = _T("data\\vong2.txt");
//		else if (this->_vong == 3)
//			filepath = _T("data\\vong3.txt");
//		else
//			filepath = _T("data\\vong1.txt");
//
//		if(!file.Open(filepath, CFile::modeRead, &ex))
//		{
//			ex.ReportError();
//			return false;
//		}
//	
//		CString mainstr = _T("");
//		char buffer[10];
//		UINT unRead;
//
//		unRead = file.Read(buffer, sizeof(buffer)-1);
//		while(unRead)
//		{
//			buffer[unRead] = '\0';
//			TRACE(_T("%s"),buffer);
//			mainstr += buffer;
//			mainstr += _T("\n");
//			unRead = file.Read(buffer, sizeof(buffer)-1);
//		}
//		file.Close();
//
//		//tach chuoi ra lam nhieu chuoi do vat
//		CStringArray cStrArrDovat;
//		int nStrCount = SplitString(mainstr, _T("~"), cStrArrDovat);
//		
//		for(int i =0; i < nStrCount; i++)
//		{
//			CStringArray cStrArrTemp;
//			SplitString(cStrArrDovat[i], _T("-"), cStrArrTemp);
//			int tmp = _wtoi(cStrArrTemp[0]);
//			bool flag;
//			if (tmp == 1)
//				flag = true;
//			else
//				flag = false;
//
//			CString mota = cStrArrTemp[1];
//			int xsrc = _wtoi(cStrArrTemp[2]);
//			int ysrc = _wtoi(cStrArrTemp[3]);
//			int xdes = _wtoi(cStrArrTemp[4]);
//			int ydes = _wtoi(cStrArrTemp[5]);
//			LPCTSTR filename = (LPCTSTR)cStrArrTemp[6];
//
//			this->_dovat.Insert(new CDoVat(mota,xsrc,ysrc,xdes,ydes,filename,flag));
//
//			//AfxMessageBox(mota);
//		}
//	}
//	catch(CException* ex)
//	{
//		AfxMessageBox(_T("Loi - Khong the load duoc game"));
//		ex->Delete();
//	}
//	return true;
//}






